@怪人
2年前 提问
1个回答

针对虚拟化的攻击方式有哪些

房乐
2年前

针对虚拟化的攻击方式有以下这些:

  • 多重映射和虚拟机跨域访问:跨域访问是指客户虚拟机不仅能够访问自身的地址空间,同时还能够访问到其他虚拟机或Hypervisor地址空间中的数据。在IaaS模型中,每个虚拟机都有独立的EPT(Extend Page Table)或SPT(Shadow Page Table),并且 Hypervisor拥有单独的地址空间。然而,攻击者利用一些软件漏洞、DMA攻击、VLAN跳跃攻击和Cache变更等可以实现虚拟机跨域访问。例如,攻击者利用Hypervisor漏洞或者已控制的 Hypervisor 对客户虚拟机的页表进行修改,使其映射到另一客户虚拟机的地址空间中,从而实现跨域访问。跨域访问能够窃取或篡改其他用户的数据或建立隐蔽信道。可以通过对不同虚拟机之间进行隔离,并且剥夺Hypervisor更新EPT页表的能力来防止这类攻击。

  • DMA攻击:DMA最初是为了允许外围设备绕过MMU,直接对物理内存进行读写操作,从而提高I/O效率。在Intel VTd提出之前,具有DMA功能的外设可以对物理内存进行任意访问,VTd的提出使这一问题得到了缓解。DMA攻击首先对外设进行改造,嵌入恶意代码;然后,将外设部署到目标主机中;最后,利用恶意代码发送DMA请求,实现恶意攻击。DMA攻击的难点是定位需要访问的数据结构或代码的地址,如此才能精确地实现有目的的攻击;否则,只能利用DMA进行粗粒度的数据窃取。在虚拟化场景下,内部攻击者可以通过DMA设备,对物理内存中的代码、数据进行篡改或窃取,从而实现代码注入、控制流劫持和数据泄露等。当前的主要解决方案是结合IO MMU对DMA的读写操作进行限制。

  • 快照、内存转存威胁:虚拟机快照(snapshot)是Hypervisor提供给管理者的API,用于容错和虚拟机维护。云提供商的内部管理员可以利用管理工具对运行中的虚拟机进行快照,为内部攻击者打开了便利之门。这样可以在用户不知情的情况下将虚拟机回滚(rollback)到特定阶段,从而绕过一些安全机制的更新。内部攻击者甚至可以利用内存转存工具对用户的内存进行转储,然后进行线下分析、窃取用户数据。防止这类攻击可利用密码学机制进行防护,或者禁用管理员的快照和转存功能。

  • 物理攻击和线路窃听:物理攻击是指攻击者能够物理接近攻击目标所在的物理服务器。虽然数据中心有专门的安全防护措施(例如录像监控和审计机制),但是数据中心的机房每天都有维修人员、清洁人员和管理人员出入,给安全带来了潜在的隐患。冷启动攻击就是很好的例子。通道或线路窃听可认为是另一种形式的物理攻击,攻击者通过一些特殊的方式监听受害者的通道和线路,包括外部网络、虚拟机之间的虚拟网络和内部总线等,从中窃取来自或流向虚拟机和Hypervisor的数据。

  • 跨虚拟机的Cache攻击:侧信道攻击可以分为基于时间驱动、基于轨迹驱动和基于访问驱动。基于时间驱动的攻击是攻击者重复检测被攻击者的加密操作使用的时间,然后通过差分分析等技术推断出密钥等信息。基于轨迹驱动的攻击通过持续地对设备的电能损耗、电磁发射等情况进行监控,获取到其敏感信息,但是这类侧信道攻击需要攻击者能够物理接近攻击目标。基于访问驱动的攻击是攻击者在执行加密操作的系统中运行一个应用,这个应用通过监控共享 Cache 的使用情况来获取密钥信息,这种攻击的优势是不需要攻击者得到受害者精确的时间信息。